[アップデート] SSM Patch Manager のサポート OS バージョンが追加されたので、RHEL 9 系でスキャンしてみた
いわさです。
本日のアップデートで AWS Systems Manager (SSM) Patch Manager でサポートされる OS バージョンが追加されました。
今回追加されたのは以下です。
- Red Hat Enterprise Linux (RHEL) 8.7, 9.0, 9.1, 9.2
- Rocky Linux 8.6, 8.7, 9.0, 9.1, 9.2
- Oracle Linux 8.6, 8.7, 9.0, 9.1, 9.2
SSM Patch Manager でサポートされている OS バージョンは以下に記載されています。
公式ドキュメントの記述がまだ「Red Hat Enterprise Linux (RHEL) 6.5 - 8.6」となっており追いついてないようですが、アナウンスされたのでサポートされてるのでしょう。
RHEL は採用するシーンも特に多いと思いますが、通常 EC2 で AMI が提供されてからパッチマネージャーでサポートされるまでタイムラグがあります。
つい先日 RHEL 9 系を採用するシーンがありましたが、「パッチマネージャーまだサポートされてないっすね!」という回答をしたばかりなので今回のアップデートはタイムリーで嬉しいです。
とはいえ、Amazon Linux 系と比較すると、RHEL のパッチマネージャー利用にあたっては SSM エージェントの明示的なインストールが必要だったり、Python の追加インストールが必要だったりといくつか手間がありました。
思えば RHEL 9 をまだ使ってなかったので、本日はパッチマネージャーで RHEL 9 インスタンスがスキャンできるところまでを確認してみたいと思います。
本日使用する AMI は東京リージョンでデフォルト選択される次の AMI 「Red Hat Enterprise Linux 9 (HVM), SSD Volume Type」です。(AMI ID: ami-0477d3aed9e98876c)
こちらは接続してバージョンを確認してみると 9.2 であることが確認出来ました。
[ec2-user@ip-172-31-43-143 ~]$ cat /etc/redhat-release Red Hat Enterprise Linux release 9.2 (Plow)
前提条件を満たしているか確認する
パッチマネージャーはクラウドから SSM エージェントを経由して、マネージドインスタンス上でコマンドが実行されます。
また、コマンドでは Python が必要です。
そのため、RHEL インスタンスに SSM エージェントがインストールされ SSM マネージドインスタンスとして認識されており、かつ Python がインストールされている必要があります。
過去の RHEL バージョンは全て SSM エージェントはインストールされていません。
また、RHEL 8.3 の時は Python もインストールされていませんでした。
今回はどうでしょうか。
SSM エージェントのインストールが必要
RHEL 9 系でも SSM エージェントはインストールされていません。
セッションマネージャーも認識しないですし、パッチマネージャーの対象インスタンスとして指定も出来ないですね。
次の公式ドキュメントと木村さんのブログを参考にユーザーデータでインストールコマンドを追加しました。
昨今は IMDSv2 が主流なので、少しブログ側のコマンドは修正したほうが良さそうだなと思いつつ、今回は面倒なのでリージョン指定なしでそのまま行きました。
- Install SSM Agent on RHEL 8.x and 9.x - AWS Systems Manager
- 【初心者向け】RHELでSession Managerを使うためにユーザーデータでSSMエージェントをインストールしてみた | DevelopersIO
こんな感じで。
#!/bin/bash dnf install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm systemctl enable amazon-ssm-agent systemctl start amazon-ssm-agent
起動してみるとセッションマネージャー接続が出来るようになっていました。
SSM マネージドインスタンスとして認識されていればこちらは OK でしょう。
RHEL 9 系には Python はデフォルトでインストールされていた
また、そのまま Python のインストール有無を確認してみました。
どうやら RHEL 9 は Python がデフォルトでインストールされているようですね。
3.9.16 のバージョンを確認しました。
RHEL の時はパッチマネージャーのために Python の追加インストールをしないとスキャンに失敗していたのですが、今回は追加インストールしなくても良さそうですな。
パッチポリシーを作成してスキャンしてみる
では最後にパッチポリシーを作成してスキャンしてみましょう。
ちなみにパッチポリシーのベースラインで対象 OS が選択されているのですが、ベースライン上は「Red Hat Enterprise Linux」という記述しかありませんので、明示的に対象バージョンを指定する必要はありません。
過去に 8.4 がサポートされていなかった時期に 8.4 でも一応動いていたので、おそらくバージョンチェックなどは無いんじゃないかなと勝手に思ってますが。
カスタムベースラインの承認ルールでバージョンを個別に指定している場合は今回追加されたバージョンを追加する必要があります。
デフォルトベースラインは RHEL の ALL バージョンが対象になっているので、今回の設定はデフォルトで一式作成しました。
実際に稼働環境に適用する際は対象 OS を絞ると思います。
次のようにパッチポリシー上で対象インスタンスを指定します。
パッチポリシーが作成出来たら、ダッシュボード右上のボタンから早速スキャンを開始しましょう。
スキャンが完了したら、実行 ID のリンクからコマンド出力を確認してみます。
Output を確認してみると、スキャンが実行されているようでした。(Error で SyntaxWarning が出ているのが少し気になりつつ)
さいごに
本日は SSM Patch Manager のサポート OS バージョンが追加されたので、RHEL 9 系でスキャンしてみました。
RHEL 9.x は RHEL 8.x と異なり SSM エージェントインストールするだけでパッチマネージャーが使えそうです
パッチマネージャーのサポート OS バージョンが追加され、これまでサポートされていなくて最新バージョンの採用に悩んでいた方は嬉しいのではないでしょうか。